package com.weiyuwqj.api.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Table(name = "bas_item")
public class BasItem implements Serializable {
    /**
     * 主键
     */
    @Id
    private Integer id;

    /**
     * 项目的存活状态：1-正常发标 0-项目失败
     */
    @Column(name = "item_isalive")
    private Byte itemIsalive;

    /**
     * 项目的新手标的标志，0-普通，1-新手标
     */
    @Column(name = "item_isnew")
    private Byte itemIsnew;

    /**
     * 是否推荐：0-否 1-推荐表2-周年庆3-奥运
     */
    @Column(name = "item_isrecommend")
    private Integer itemIsrecommend;


    /**
     * 是否可债转:0.不可债转 1.可债转
     */
    @Column(name = "debt_transferable")
    private Integer debtTransferable;

    /**
     * 状态 
     */
    @Column(name = "item_status")
    private Integer itemStatus;

    @Column(name = "item_user_id")
    private Integer itemUserId;

    /**
     * 项目名称 
     */
    @Column(name = "item_name")
    private String itemName;

    /**
     * 项目编号
     */
    @Column(name = "item_number")
    private String itemNumber;

    /**
     * 项目描述 
     */
    @Column(name = "item_desc")
    private String itemDesc;

    /**
     * 项目利率 单位为%，100即100%
     */
    @Column(name = "item_rate")
    private BigDecimal itemRate;

    @Column(name = "item_add_rate")
    private BigDecimal itemAddRate;

    /**
     * 项目类型 1-活期宝,2-小盈宝,3-小财迷,4-小金库,5-小银票，6-玩转宝
     */
    @Column(name = "item_type")
    private Integer itemType;

    /**
     * 借款周期 
     */
    @Column(name = "item_cycle")
    private Integer itemCycle;

    /**
     * 周期单位  1日 2周 3月 4季 5年
     */
    @Column(name = "item_cycle_unit")
    private Integer itemCycleUnit;

    /**
     * 借款金额 
     */
    @Column(name = "item_account")
    private BigDecimal itemAccount;

    /**
     * 进行中金额 
     */
    @Column(name = "item_ongoing_account")
    private BigDecimal itemOngoingAccount;

    //标账户余额
    private BigDecimal usable;

    /**
     * 进度 单位为%，100即100%
     */
    @Column(name = "item_scale")
    private BigDecimal itemScale;

    /**
     * 该标的单笔最低投标金额 
     */
    @Column(name = "item_single_min_investment")
    private BigDecimal itemSingleMinInvestment;

    /**
     * 还款方式 1-一次性还款 2-等额本息 3-先息后本
     */
    @Column(name = "item_repay_method")
    private Integer itemRepayMethod;

    /**
     * 该标的单笔最高投标金额 
     */
    @Column(name = "item_single_max_investment")
    private BigDecimal itemSingleMaxInvestment;

    /**
     * 该标的最大投标金额总额 
     */
    @Column(name = "item_max_investment")
    private BigDecimal itemMaxInvestment;

    /**
     * 投标次数
     */
    @Column(name = "invest_times")
    private Integer investTimes;

    private Integer fullStatus;

    /**
     * 新增IP，支持IPV6 
     */
    private String addip;

    /**
     * 新增时间 
     */
    private Date addtime;

    /**
     * 发布时间
     */
    @Column(name = "release_time")
    private Date releaseTime;

    /**
     * 结束时间
     */
    @Column(name = "end_time")
    private Date endTime;

    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 项目内容 富文本
     */
    @Column(name = "item_content")
    private String itemContent;

    @Column(name = "item_second_name")
    private String itemSecondName;

    private String password;

    @Column(name = "guarantee_id")
    private Integer guaranteeId;

    private String contract;

    private Integer prepayment;

    @Column(name = "move_vip")
    private Integer moveVip;

    @Column(name = "item_serve_rate")
    private BigDecimal itemServeRate;

    /**
     * 债转服务费比率
     */
    @Column(name = "debt_serve_fee_rate")
    private BigDecimal debtServeFeeRate;

    @Column(name = "item_loan_use")
    private String itemLoanUse;

    @Column(name = "item_is_auto")
    private Integer itemIsAuto;

    @Column(name = "fund_security")
    private String fundSecurity;

    @Column(name = "risk_control_measures")
    private String riskControlMeasures;

    @Column(name = "interest_time")
    private Date interestTime;


    private Integer assetPackageId;

    private Integer sequence;

    public Integer getFullStatus() {
        return fullStatus;
    }

    public void setFullStatus(Integer fullStatus) {
        this.fullStatus = fullStatus;
    }

    public String getFundSecurity() {
        return fundSecurity;
    }

    public void setFundSecurity(String fundSecurity) {
        this.fundSecurity = fundSecurity;
    }

    public String getRiskControlMeasures() {
        return riskControlMeasures;
    }

    public void setRiskControlMeasures(String riskControlMeasures) {
        this.riskControlMeasures = riskControlMeasures;
    }

    public Date getInterestTime() {
        return interestTime;
    }

    public void setInterestTime(Date interestTime) {
        this.interestTime = interestTime;
    }

    public Integer getAssetPackageId() {
        return assetPackageId;
    }

    public void setAssetPackageId(Integer assetPackageId) {
        this.assetPackageId = assetPackageId;
    }

    public Integer getSequence() {
        return sequence;
    }

    public void setSequence(Integer sequence) {
        this.sequence = sequence;
    }

    public Integer getItemIsAuto() {
        return itemIsAuto;
    }

    public void setItemIsAuto(Integer itemIsAuto) {
        this.itemIsAuto = itemIsAuto;
    }

    public String getItemLoanUse() {
        return itemLoanUse;
    }

    public void setItemLoanUse(String itemLoanUse) {
        this.itemLoanUse = itemLoanUse;
    }

    public BigDecimal getItemServeRate() {
        return itemServeRate;
    }

    public void setItemServeRate(BigDecimal itemServeRate) {
        this.itemServeRate = itemServeRate;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getItemSecondName() {
        return itemSecondName;
    }

    public void setItemSecondName(String itemSecondName) {
        this.itemSecondName = itemSecondName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getGuaranteeId() {
        return guaranteeId;
    }

    public void setGuaranteeId(Integer guaranteeId) {
        this.guaranteeId = guaranteeId;
    }

    public String getContract() {
        return contract;
    }

    public void setContract(String contract) {
        this.contract = contract;
    }

    public Integer getPrepayment() {
        return prepayment;
    }

    public void setPrepayment(Integer prepayment) {
        this.prepayment = prepayment;
    }

    public Integer getMoveVip() {
        return moveVip;
    }

    public void setMoveVip(Integer moveVip) {
        this.moveVip = moveVip;
    }

    public Integer getDebtTransferable() {
        return debtTransferable;
    }

    public void setDebtTransferable(Integer debtTransferable) {
        this.debtTransferable = debtTransferable;
    }

    public BigDecimal getDebtServeFeeRate() {
        return debtServeFeeRate;
    }

    public void setDebtServeFeeRate(BigDecimal debtServeFeeRate) {
        this.debtServeFeeRate = debtServeFeeRate;
    }

    /**
     * 获取主键
     *
     * @return id - 主键
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取项目的存活状态：1-正常发标 0-项目失败
     *
     * @return item_isalive - 项目的存活状态：1-正常发标 0-项目失败
     */
    public Byte getItemIsalive() {
        return itemIsalive;
    }

    /**
     * 设置项目的存活状态：1-正常发标 0-项目失败
     *
     * @param itemIsalive 项目的存活状态：1-正常发标 0-项目失败
     */
    public void setItemIsalive(Byte itemIsalive) {
        this.itemIsalive = itemIsalive;
    }

    /**
     * 获取项目的新手标的标志，0-普通，1-新手标
     *
     * @return item_isnew - 项目的新手标的标志，0-普通，1-新手标
     */
    public Byte getItemIsnew() {
        return itemIsnew;
    }

    /**
     * 设置项目的新手标的标志，0-普通，1-新手标
     *
     * @param itemIsnew 项目的新手标的标志，0-普通，1-新手标
     */
    public void setItemIsnew(Byte itemIsnew) {
        this.itemIsnew = itemIsnew;
    }

    /**
     * 获取是否推荐：0-否 1-推荐表2-周年庆3-奥运
     *
     * @return item_isrecommend - 是否推荐：0-否 1-推荐表2-周年庆3-奥运
     */
    public Integer getItemIsrecommend() {
        return itemIsrecommend;
    }

    /**
     * 设置是否推荐：0-否 1-推荐表2-周年庆3-奥运
     *
     * @param itemIsrecommend 是否推荐：0-否 1-推荐表2-周年庆3-奥运
     */
    public void setItemIsrecommend(Integer itemIsrecommend) {
        this.itemIsrecommend = itemIsrecommend;
    }

    /**
     * 获取状态 
     *
     * @return item_status - 状态 
     */
    public Integer getItemStatus() {
        return itemStatus;
    }

    /**
     * 设置状态 
     *
     * @param itemStatus 状态 
     */
    public void setItemStatus(Integer itemStatus) {
        this.itemStatus = itemStatus;
    }

    /**
     * @return item_user_id
     */
    public Integer getItemUserId() {
        return itemUserId;
    }

    /**
     * @param itemUserId
     */
    public void setItemUserId(Integer itemUserId) {
        this.itemUserId = itemUserId;
    }

    /**
     * 获取项目名称 
     *
     * @return item_name - 项目名称 
     */
    public String getItemName() {
        return itemName;
    }

    /**
     * 设置项目名称 
     *
     * @param itemName 项目名称 
     */
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    /**
     * 获取项目编号
     *
     * @return item_number - 项目编号
     */
    public String getItemNumber() {
        return itemNumber;
    }

    /**
     * 设置项目编号
     *
     * @param itemNumber 项目编号
     */
    public void setItemNumber(String itemNumber) {
        this.itemNumber = itemNumber;
    }

    /**
     * 获取项目描述 
     *
     * @return item_desc - 项目描述 
     */
    public String getItemDesc() {
        return itemDesc;
    }

    /**
     * 设置项目描述 
     *
     * @param itemDesc 项目描述 
     */
    public void setItemDesc(String itemDesc) {
        this.itemDesc = itemDesc;
    }

    /**
     * 获取项目利率 单位为%，100即100%
     *
     * @return item_rate - 项目利率 单位为%，100即100%
     */
    public BigDecimal getItemRate() {
        return itemRate;
    }

    /**
     * 设置项目利率 单位为%，100即100%
     *
     * @param itemRate 项目利率 单位为%，100即100%
     */
    public void setItemRate(BigDecimal itemRate) {
        this.itemRate = itemRate;
    }

    /**
     * @return item_add_rate
     */
    public BigDecimal getItemAddRate() {
        return itemAddRate;
    }

    /**
     * @param itemAddRate
     */
    public void setItemAddRate(BigDecimal itemAddRate) {
        this.itemAddRate = itemAddRate;
    }

    /**
     * 获取项目类型 1-活期宝,2-小盈宝,3-小财迷,4-小金库,5-小银票，6-玩转宝
     *
     * @return item_type - 项目类型 1-活期宝,2-小盈宝,3-小财迷,4-小金库,5-小银票，6-玩转宝
     */
    public Integer getItemType() {
        return itemType;
    }

    /**
     * 设置项目类型 1-活期宝,2-小盈宝,3-小财迷,4-小金库,5-小银票，6-玩转宝
     *
     * @param itemType 项目类型 1-活期宝,2-小盈宝,3-小财迷,4-小金库,5-小银票，6-玩转宝
     */
    public void setItemType(Integer itemType) {
        this.itemType = itemType;
    }

    /**
     * 获取借款周期 
     *
     * @return item_cycle - 借款周期 
     */
    public Integer getItemCycle() {
        return itemCycle;
    }

    /**
     * 设置借款周期 
     *
     * @param itemCycle 借款周期 
     */
    public void setItemCycle(Integer itemCycle) {
        this.itemCycle = itemCycle;
    }

    /**
     * 获取周期单位 1-天、2-月、3-季、4-年
     *
     * @return item_cycle_unit - 周期单位 1-天、2-月、3-季、4-年
     */
    public Integer getItemCycleUnit() {
        return itemCycleUnit;
    }

    /**
     * 设置周期单位 1-天、2-月、3-季、4-年
     *
     * @param itemCycleUnit 周期单位 1-天、2-月、3-季、4-年
     */
    public void setItemCycleUnit(Integer itemCycleUnit) {
        this.itemCycleUnit = itemCycleUnit;
    }

    /**
     * 获取借款金额 
     *
     * @return item_account - 借款金额 
     */
    public BigDecimal getItemAccount() {
        return itemAccount;
    }

    /**
     * 设置借款金额 
     *
     * @param itemAccount 借款金额 
     */
    public void setItemAccount(BigDecimal itemAccount) {
        this.itemAccount = itemAccount;
    }

    /**
     * 获取进行中金额 
     *
     * @return item_ongoing_account - 进行中金额 
     */
    public BigDecimal getItemOngoingAccount() {
        return itemOngoingAccount;
    }

    /**
     * 设置进行中金额 
     *
     * @param itemOngoingAccount 进行中金额 
     */
    public void setItemOngoingAccount(BigDecimal itemOngoingAccount) {
        this.itemOngoingAccount = itemOngoingAccount;
    }

    /**
     * 获取进度 单位为%，100即100%
     *
     * @return item_scale - 进度 单位为%，100即100%
     */
    public BigDecimal getItemScale() {
        return itemScale;
    }

    /**
     * 设置进度 单位为%，100即100%
     *
     * @param itemScale 进度 单位为%，100即100%
     */
    public void setItemScale(BigDecimal itemScale) {
        this.itemScale = itemScale;
    }

    /**
     * 获取该标的单笔最低投标金额 
     *
     * @return item_single_min_investment - 该标的单笔最低投标金额 
     */
    public BigDecimal getItemSingleMinInvestment() {
        return itemSingleMinInvestment;
    }

    /**
     * 设置该标的单笔最低投标金额 
     *
     * @param itemSingleMinInvestment 该标的单笔最低投标金额 
     */
    public void setItemSingleMinInvestment(BigDecimal itemSingleMinInvestment) {
        this.itemSingleMinInvestment = itemSingleMinInvestment;
    }

    /**
     * 获取还款方式 1-一次性还款 2-等额本息 3-先息后本
     *
     * @return item_repay_method - 还款方式 1-一次性还款 2-等额本息 3-先息后本
     */
    public Integer getItemRepayMethod() {
        return itemRepayMethod;
    }

    /**
     * 设置还款方式 1-一次性还款 2-等额本息 3-先息后本
     *
     * @param itemRepayMethod 还款方式 1-一次性还款 2-等额本息 3-先息后本
     */
    public void setItemRepayMethod(Integer itemRepayMethod) {
        this.itemRepayMethod = itemRepayMethod;
    }

    /**
     * 获取该标的单笔最高投标金额 
     *
     * @return item_single_max_investment - 该标的单笔最高投标金额 
     */
    public BigDecimal getItemSingleMaxInvestment() {
        return itemSingleMaxInvestment;
    }

    /**
     * 设置该标的单笔最高投标金额 
     *
     * @param itemSingleMaxInvestment 该标的单笔最高投标金额 
     */
    public void setItemSingleMaxInvestment(BigDecimal itemSingleMaxInvestment) {
        this.itemSingleMaxInvestment = itemSingleMaxInvestment;
    }

    /**
     * 获取该标的最大投标金额总额 
     *
     * @return item_max_investment - 该标的最大投标金额总额 
     */
    public BigDecimal getItemMaxInvestment() {
        return itemMaxInvestment;
    }

    /**
     * 设置该标的最大投标金额总额 
     *
     * @param itemMaxInvestment 该标的最大投标金额总额 
     */
    public void setItemMaxInvestment(BigDecimal itemMaxInvestment) {
        this.itemMaxInvestment = itemMaxInvestment;
    }

    /**
     * 获取投标次数
     *
     * @return invest_times - 投标次数
     */
    public Integer getInvestTimes() {
        return investTimes;
    }

    /**
     * 设置投标次数
     *
     * @param investTimes 投标次数
     */
    public void setInvestTimes(Integer investTimes) {
        this.investTimes = investTimes;
    }

    /**
     * 获取新增IP，支持IPV6 
     *
     * @return addip - 新增IP，支持IPV6 
     */
    public String getAddip() {
        return addip;
    }

    /**
     * 设置新增IP，支持IPV6 
     *
     * @param addip 新增IP，支持IPV6 
     */
    public void setAddip(String addip) {
        this.addip = addip;
    }

    /**
     * 获取新增时间 
     *
     * @return addtime - 新增时间 
     */
    public Date getAddtime() {
        return addtime;
    }

    /**
     * 设置新增时间 
     *
     * @param addtime 新增时间 
     */
    public void setAddtime(Date addtime) {
        this.addtime = addtime;
    }

    /**
     * 获取发布时间
     *
     * @return release_time - 发布时间
     */
    public Date getReleaseTime() {
        return releaseTime;
    }

    /**
     * 设置发布时间
     *
     * @param releaseTime 发布时间
     */
    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * 获取项目内容 富文本
     *
     * @return item_content - 项目内容 富文本
     */
    public String getItemContent() {
        return itemContent;
    }

    /**
     * 设置项目内容 富文本
     *
     * @param itemContent 项目内容 富文本
     */
    public void setItemContent(String itemContent) {
        this.itemContent = itemContent;
    }

    public BigDecimal getUsable() {
        return usable;
    }

    public void setUsable(BigDecimal usable) {
        this.usable = usable;
    }

    @Override
    public String toString() {
        return "BasItem{" +
                "id=" + id +
                ", itemIsalive=" + itemIsalive +
                ", itemIsnew=" + itemIsnew +
                ", itemIsrecommend=" + itemIsrecommend +
                ", itemStatus=" + itemStatus +
                ", itemUserId=" + itemUserId +
                ", itemName='" + itemName + '\'' +
                ", itemNumber='" + itemNumber + '\'' +
                ", itemDesc='" + itemDesc + '\'' +
                ", itemRate=" + itemRate +
                ", itemAddRate=" + itemAddRate +
                ", itemType=" + itemType +
                ", itemCycle=" + itemCycle +
                ", itemCycleUnit=" + itemCycleUnit +
                ", itemAccount=" + itemAccount +
                ", itemOngoingAccount=" + itemOngoingAccount +
                ", itemScale=" + itemScale +
                ", itemSingleMinInvestment=" + itemSingleMinInvestment +
                ", itemRepayMethod=" + itemRepayMethod +
                ", itemSingleMaxInvestment=" + itemSingleMaxInvestment +
                ", itemMaxInvestment=" + itemMaxInvestment +
                ", investTimes=" + investTimes +
                ", addip='" + addip + '\'' +
                ", addtime=" + addtime +
                ", releaseTime=" + releaseTime +
                ", endTime=" + endTime +
                ", updateTime=" + updateTime +
                ", itemContent='" + itemContent + '\'' +
                ", itemSecondName='" + itemSecondName + '\'' +
                ", password='" + password + '\'' +
                ", guaranteeId=" + guaranteeId +
                ", contract='" + contract + '\'' +
                ", prepayment=" + prepayment +
                ", moveVip=" + moveVip +
                ", itemServeRate=" + itemServeRate +
                ", itemLoanUse='" + itemLoanUse + '\'' +
                ", itemIsAuto=" + itemIsAuto +
                '}';
    }

}